\chapter{计算机视觉和自然语言处理问题的研究进展}\label{chap:related}

在多模态融合问题中，最常使用、数据最丰富的就是视觉模态和文字模态。
在这两个方向上，深度神经网络算法成为了近年来的主流，
同时取得了一系列的突破性进展。在大规模多模态数据融合问题中，
离不开这两个研究方向上的成果。
本章会分别总结视觉模态和文字模态两个方向上深度学习模型的重要成果，
同时简单介绍使用大规模数据进行预训练的概念和优势。

\section{计算机视觉深度学习模型}\label{sec:cvmodel}

计算机视觉是一个经典的机器学习问题。随着AlexNet在ImageNet任务上取得了突破性成绩，
深度神经网络成为了解决计算机视觉问题的主流方法。

AlexNet\cite{krizhevsky2012imagenet}是最早在ImageNet上使用深度神经网络取得显著成功的算法，
并在之后掀起了深度神经网络热潮。AlexNet由5个卷积神经网络层(CNN)和三个全连接网络层(FC)组成，
同时使用ReLU作为激活函数，避免了梯度消失和梯度爆炸问题；使用dropout方法减轻网络的过拟合。
该方法在ImageNet 2010比赛中取得了62.5\%的分类准确率，显著高于其他方法。

VGG网络\cite{simonyan2015deep}相比于AlexNet增加了很多卷积层，
但同时减少了卷积核的大小。该网络证明了当卷积神经网络层数够多时，
较小的卷积核也能学习到大范围的图像特征。

ResNet\cite{he2015deep}对卷积神经网络层使用残差结构，
将卷积神经网络得到的结果累加到经过卷积层之前的结果上，
有效缓解了深度神经网络层数太多出现的梯度消失和梯度爆炸问题，
大大增加了神经网络深度，在保持网络参数量较少的同时提升模型效果。

Vision Transformer(ViT)\cite{dosovitskiy2020image}是一种基于Transformer的视觉深度学习模型。
和之前基于CNN的模型不同，模型使用了基于注意力机制的Transformer结构，
使模型能够感知到完整的图像，比起CNN方法具有更好的整体性，
但同时这也导致模型参数量较大、容易过拟合。因此ViT方法虽然在数据量较小时表现不够出色，
但是在数据量足够的情况下能够取得比基于CNN的网络结构取得更好的效果。

\section{自然语言处理深度学习模型}\label{sec:cvmodel}

自然语言处理任务也是最早尝试使用深度学习模型解决的任务之一。
在自然语言处理任务中，模型获取一句话作为输入，并完成语义理解、
情感分析、文本生成、机器翻译等任务。

由于语言中词语是离散的，因此如何将离散的词语连续表示，
即词语的向量化是自然语言处理任务中的关键问题。
Word2Vec\cite{mikolov2013efficient}是该方向上的一个经典工作。
该方法可以使用大规模语料进行训练，提升了模型效果。
在学习目标上，该方法通过使相邻词语的向量表示更加相近来完成，
并提出了CBOW和skip-gram两种方法。

由于自然语言天然带有顺序关系，因此循环神经网络成为了处理自然语言问题的一种直观方法。
其中长短时记忆神经网络(LSTM)\cite{hochreiter1997long}是一种常用的改进型循环神经网络。
LSTM可以更好的应对梯度消失和梯度爆炸问题，使用双向LSTM还可以同时处理出现在左侧和右侧的内容。

Seq2Seq模型\cite{sutskever2014sequence}则在机器翻译领域取得了显著成功。
该模型首先使用作为编码器的神经网络对数据文本进行处理得到文本表示，
然后再使用一个解码器网络根据编码器学到的文本表示预测输出文本，
并将预测结果作为下一次的输入。

近年来在自然语言处理领域最振奋人心的成就是大规模预训练模型BERT\cite{devlin2019bert}的提出。
BERT是一个使用多层自注意力机制(self-attention)\cite{vaswani2017attention}的神经网络，
该模型使用了亿级别的无标注wikipedia文本数据作为预训练数据，并设计了两个训练任务：
Masked-Language Modeling (MLM)和Next Sentence Prediction (NSP)，
使模型能够根据句子的上下文对遮盖词语进行预测，以及推测两个句子的前后关系。
在完成预训练后，BERT可以接入各种不同的下游任务，对下游任务简单微调就可以取得十分优秀的效果。



\subsection{预训练学习模型}

随着计算力、训练数据规模和模型效果三个方面的稳步提升，出现了一种新的学习方式：预训练学习。
预训练学习利用海量无标注的数据，学习数据间的特点，将数据进行向量表示。
广泛的实验表明，在数据量大幅提升的情况下，由于数据分布更接近于真实分布，
同时模型过拟合的可能性也显著降低，因此可以显著增强模型对数据的提取能力。
使用预训练学习方法，可以使主干网络(backbone network)有更好的表示能力，
从而提升模型在下游任务上的表现。